<?php

require_once 'conexionBD.php';
require_once 'interesesDA.php';

function cargarPrestamos() {
    $mdb2 = conectar();
    $prestamos = new Prestamo($mdb2['dsn']);
    $prestamos->setSelect('idPrestamo');
    $prestamos->addSelect(TABLA_PERSONA . '.nombres AS nombres');
    $prestamos->addSelect(TABLA_PERSONA . '.apellidos AS apellidos');
    $prestamos->addSelect('fechaPrestamo');
    $prestamos->addSelect('valor');
    $prestamos->addSelect('abono');
    $prestamos->addSelect('plazoMeses');
    $prestamos->addSelect('comentarios');
    $prestamos->setJoin(TABLA_PERSONA, TABLA_PRESTAMO . ".idPersona = " . TABLA_PERSONA . ".idPersona", 'inner');
    $prestamos->setWhere("activo = 1");
    $prestamos->setOrder('fechaPrestamo');
    $prestamos->addOrder('nombres');
    $prestamos = formatoNumeros($prestamos->getAll(), "valor");
    return formatoNumeros($prestamos, "abono");
}

function cargarTotalPrestamos() {
    $mdb2 = conectar();
    $prestamos = new Prestamo($mdb2['dsn']);
    $prestamos->setSelect("SUM(valor-abono) AS suma");
    $prestamos->setWhere("activo = 1");
    $prestamos = $prestamos->getAll();
    return $prestamos[0]['suma'];
}

function crearPrestamo($valor, $plazoMeses, $comentarios, $idPersona) {
    $mdb2 = conectar();
    $prestamo = new Prestamo($mdb2['dsn']);
    $prestamo->useResult('object');
    $n_prestamo = $prestamo->newEntity();
    $n_prestamo->valor = $valor;
    $n_prestamo->abono = 0;
    $n_prestamo->fechaPrestamo = date('Y-m-d');//, mktime(0, 0, 0, 8, 10, 2012)); //Formato mktime Mes-Dia-Año
    $n_prestamo->plazoMeses = $plazoMeses;
    $n_prestamo->activo = 1;
    $n_prestamo->comentarios = $comentarios;
    $n_prestamo->idPersona = $idPersona;
    $idPrestamo = $n_prestamo->save();
    if (is_numeric($idPrestamo))
        return crearInteres($valor * 0.03 * $plazoMeses, date('Y-m-d'), "Prestamo", 0, $idPersona);
    return false;
}

function refinanciarPrestamo($idPrestamo, $nuevoPlazo) {
    $mdb2 = conectar();
    $prestamo = new Prestamo($mdb2['dsn']);
    $prestamo = $prestamo->get($idPrestamo);
    if (is_array($prestamo)) {
        $plazoInicial = $prestamo['plazoMeses'];
        $idPersona = $prestamo['idPersona'];
        $valor = $prestamo['valor'] - $prestamo['abono'];
        $datosPrestamo = array("idPrestamo" => $idPrestamo, "plazoMeses" => ($plazoInicial + $nuevoPlazo));
        $prestamo = new Prestamo($mdb2['dsn']);
        if ($prestamo->save($datosPrestamo))
            return crearInteres($valor * 0.03 * $nuevoPlazo, date('Y-m-d'), "Prestamo", 0, $idPersona);
        return false;
    }
    return false;
}

function abonarPrestamo($idPrestamo, $abono) {
    $mdb2 = conectar();
    $prestamo = new Prestamo($mdb2['dsn']);
    $prestamo->setSelect('abono');
    $prestamo = $prestamo->get($idPrestamo);
    if (is_array($prestamo)) {
        $abonoAnt = $prestamo['abono'];
        $datosPrestamo = array("idPrestamo" => $idPrestamo, "abono" => ($abonoAnt + $abono));
        $prestamo = new Prestamo($mdb2['dsn']);
        return $prestamo->save($datosPrestamo);
    }
    return false;
}

function cancelarPrestamo($idPrestamo) {
    $mdb2 = conectar();
    $prestamo = new Prestamo($mdb2['dsn']);
    $prestamo = $prestamo->get($idPrestamo);
    if (is_array($prestamo)) {
        $valorPrestamo = $prestamo['valor'];
        $valorAbono = $prestamo['abono'];
        $fechaPrestamo = $prestamo['fechaPrestamo'];
        $datosPrestamo = array("idPrestamo" => $idPrestamo, "abono" => $valorPrestamo, "activo" => 0, "fechaCancelacion" => date('Y-m-d'));
        $prestamo = new Prestamo($mdb2['dsn']);
        return $prestamo->save($datosPrestamo);//TODO Revisar lo de los intereses si se cancela el prestamo despues del plazo.
        /*if($prestamo->save($datosPrestamo)){

            if()
        }*/
    }
    return false;
}

?>
